# -*- coding: utf-8 -*-
"""
Created on Fri Aug 25 19:17:35 2023

@author: skunk69
"""

import json

chinese_name = u'阿尔茨海默病病理行为评定量表'
english_name = 'Behavioral Pathology in Alzheimer’s Disease Rating Scale'
abbreviation = 'BEHAVE-AD'
category = u'精神病学临床量表'

outline = u"""阿尔茨海默病（AD）是一种起病隐匿的进行性发展的神经系统退行性疾病。临床上以记忆障碍、失语、失用、失认、视空间技能损害、执行功能障碍以及人格和行为改变等全面性痴呆表现为特征，病因迄今未明。65岁以前发病者，称早老性痴呆；65岁以后发病者称老年性痴呆。
阿尔茨海默病病理行为评定量表（BEHAVE-AD）是由Reisberg等在1987年制定的，用于评定痴呆症患者的非认知行为障碍。"""

instruction = u"""按照给照料者造成麻烦及给患者带来危险程度分为四级：0分代表无，表示不造成照料者麻烦和患者的危险；1分代表轻度，表示造成照料者轻度麻烦和患者的轻度危险；2分代表中度，表示造成照料者中度麻烦和患者的中度危险；3分代表重度，表示造成照料者重度麻烦和患者的重度危险。"""

with open('BEHAVE-AD.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = []
scales = [u'偏执和妄想观念',u'幻觉',u'行为紊乱',u'攻击行为',u'日夜节律紊乱',
          u'情感障碍',u'焦虑和恐惧']
scales_items = [
    list(range(1,8)),
    list(range(8,13)),
    list(range(13,16)),
    list(range(16,19)),
    [19],
    [20,21],
    list(range(22,26))
    ]
factors = []
factors_scales = []
rating = [u'无',u'轻度',u'中度',u'重度']
score_rules = list(range(4))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""本量表要由经培训的专业人员操作。
本量表由知情者回答，最好由主要照料者回答。
评定的时间范围可由使用者根据需要自行设定。"""

reliability = u""""""
validity = u""""""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""统计指标为总分和各因子分。"""

applications = u"""该量表能够比较全面地、有效地评定痴呆患者的行为和精神症状，目前在国际上已被广泛采用。国内盛建华等进行了中文版的信度和效度研究，发现重测信度为0.96，与BPRS相比的平行效度为0.475。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)